package org.rapan.EJB;

import java.util.Date;
import java.util.Set;

import javax.ejb.Local;

import org.rapan.Position;
import org.rapan.exceptions.DateMismatchException;
import org.rapan.exceptions.EmailTakenException;
import org.rapan.exceptions.InvalidLoginException;
import org.rapan.jpa.Consultant;

@Local
public interface ConsultantInt {

	Consultant register(String name, String email, Position position,
			Date startDate, String password) throws EmailTakenException;

	Consultant login(String email, String password)
			throws InvalidLoginException;

	Consultant view(long id);

	Consultant edit(Consultant consultant) throws DateMismatchException;

	Set<Consultant> getAllConsultants();

	void checkAndCreateAdmin();

	Set<Consultant> findConsultants(String match);
}
